package org.zhs.decorate.demo2;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

/**
 * Author: zhs
 * Date: 16/05/2024 17:12
 * Description:
 * 加密类
 * 用于数据加密
 */
public class EncryptionDecorator extends DataSourceDecorate{

    public EncryptionDecorator(DataSource dataSource){
        this.dataSource = dataSource;
    }

    @Override
    public void writeData(String data) {
        try {
            // 先执行自己的增强内容，加密
            String encode = URLEncoder.encode(data, "utf-8");
            // 然后将自己加密后的内容，传递给下一个装饰器（也可能是被增强的对象）
            super.writeData(encode);
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
    }

}
